package com.easy.project.service.system;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easy.project.domain.dto.auth.LoginDTO;
import com.easy.project.domain.dto.system.UserDTO;
import com.easy.project.domain.dto.system.UserEditDTO;
import com.easy.project.domain.po.system.SysUserPO;
import com.easy.project.domain.vo.system.SysAuthVO;
import com.easy.project.domain.vo.system.SysUserVO;

import java.util.List;

/**
 * <p>
 * 鉴权 服务类
 * </p>
 *
 * @author wxz
 * @since 2024-01-10
 */
public interface ISysAuthService {

    /**
     * 生成 公钥
     * @return
     */
    String generateRsaPublicKey();

    /**
     * 用户登录
     * @param loginDTO
     * @return
     */
    SysAuthVO login(LoginDTO loginDTO);

    /**
     * 根据用户id获取权限路由集合
     * @param userId
     * @return
     */
    List<String> getPermissionListByUserId(Long userId);

    /**
     * 根据用户id获取角色id集合
     * @param userId
     * @return
     */
    List<String> getRoleCodeListByUserId(Long userId);

    /**
     * 获取全部的权限
     * @return
     */
    List<String> getAllPermissionList();

    /**
     * 获取所有的角色code
     * @return
     */
    List<String> getAllRoleCode();

    /**
     * 当前用户登出
     */
    void loginOut();
}
